import axios from "axios";

const instance = axios.create({
    baseURL: 'http://127.0.0.1:4523/m1/6536593-6239907-default',
    timeout: 5000,
    // headers: {
    //     'Content-Type': 'application/json;charset=UTF-8'
    // }
});

instance.interceptors.request.use(
    config => {
        return config;
    },
    error => {
        return Promise.reject(error);
    }
);

instance.interceptors.response.use(
    response => {
        const { status } = response
        // 自带的状态码
        if (status !== 200) {
            return Promise.reject(response);
        }

        const { code } = response.data
        codeHandle(code)
        // 自定义的状态码
        if (code !== 200) {
            // 错误处理
        }

        return response.data;
    },
    error => {
        errorHandle(error)
        return Promise.reject(error);
    }
)

const codeHandle = (code: number) => {
    switch (code) {
        case 0:
            // 错误发送到后端记录
            console.error('错误发送到后端记录');
            break;
        default:
            break;
    }
}


const errorHandle = (error: any) => {
    const { status, config } = error
    if (status === 401) {
        // 401 清除token信息并跳转到登录页面
        localStorage.clear()
    }
    if (status === 403) {
        // 无权限
    }

    if (status === 500) {
        // 服务器错误
        console.error(config.url, '服务器错误');
    }

}




export default instance;